package nc.ui.bf.jx.subjectrule;

import java.util.List;

import nc.itf.trade.excelimport.IImportableEditor;
import nc.itf.trade.excelimport.ImportableInfo;
import nc.ui.bd.pub.AbstractBdBillCardUI;
import nc.ui.pub.bill.BillEditEvent;
import nc.ui.trade.bill.ICardController;
import nc.ui.trade.card.CardEventHandler;
import nc.ui.trade.excelimport.InputItem;
import nc.vo.pub.lang.UFBoolean;

public class ClientUI extends AbstractBdBillCardUI implements IImportableEditor {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public ImportableInfo getImportableInfo() {
		return null;
	}

	public void addNew() {
	}

	public void setValue(Object obj) {

	}

	public void save() throws Exception {
	}

	public void cancel() {

	}

	@Override
	public Object getUserObject() {
		return new SubjectLimitCheck();
	}

	public List<InputItem> getInputItems() {
		return null;
	}

	@Override
	protected ICardController createController() {
		return new SubjectRuleController();
	}

	@Override
	protected CardEventHandler createEventHandler() {
		return new SubjectRuleEventHandler(this, getUIControl());
	}

	@Override
	public String getRefBillType() {
		return null;
	}

	@Override
	public void setDefaultData() throws Exception {

	}

	@Override
	public boolean beforeEdit(BillEditEvent e) {
		int row = e.getRow();
		String key = e.getKey();
		String pk_subjectrule = null;
		pk_subjectrule = (String) getBillCardPanel().getBodyValueAt(row,
				"pk_subjectrule");
		if (pk_subjectrule != null) {
			if ("accsubjname".equalsIgnoreCase(key)) {
				return false;
			}
		}
		return true;
	}

	@Override
	public void afterEdit(BillEditEvent e) {
		String key = e.getKey();
		if ("biscrdeposit".equalsIgnoreCase(key)) {
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.FALSE, e.getRow(), "bisdrdeposit");
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.TRUE, e.getRow(), "bisdrloan");
			if ((Boolean) getBillCardWrapper().getBillCardPanel()
					.getBillModel().getValueAt(e.getRow(), "biscrdeposit")) {
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "biscrloan");
			} else {
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "biscrloan");
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "bisdrloan");
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "bisdrdeposit");
			}
		}
		if ("biscrloan".equalsIgnoreCase(key)) {
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.TRUE, e.getRow(), "bisdrdeposit");
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.FALSE, e.getRow(), "bisdrloan");
			if ((Boolean) getBillCardWrapper().getBillCardPanel()
					.getBillModel().getValueAt(e.getRow(), "biscrloan")) {
				getBillCardWrapper()
						.getBillCardPanel()
						.getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "biscrdeposit");
			} else {
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "biscrdeposit");
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "bisdrloan");
				getBillCardWrapper()
						.getBillCardPanel()
						.getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "bisdrdeposit");
			}
		}
		if ("bisdrdeposit".equalsIgnoreCase(key)) {
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.FALSE, e.getRow(), "biscrdeposit");
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.TRUE, e.getRow(), "biscrloan");
			if ((Boolean) getBillCardWrapper().getBillCardPanel()
					.getBillModel().getValueAt(e.getRow(), "bisdrdeposit")) {
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "bisdrloan");
			} else {
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "bisdrloan");
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "biscrloan");
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "biscrdeposit");
			}
		}
		if ("bisdrloan".equalsIgnoreCase(key)) {
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.TRUE, e.getRow(), "biscrdeposit");
			getBillCardWrapper().getBillCardPanel().getBillModel().setValueAt(
					UFBoolean.FALSE, e.getRow(), "biscrloan");
			if ((Boolean) getBillCardWrapper().getBillCardPanel()
					.getBillModel().getValueAt(e.getRow(), "bisdrloan")) {
				getBillCardWrapper()
						.getBillCardPanel()
						.getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "bisdrdeposit");
			} else {
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "bisdrdeposit");
				getBillCardWrapper().getBillCardPanel().getBillModel()
						.setValueAt(UFBoolean.TRUE, e.getRow(), "biscrloan");
				getBillCardWrapper()
						.getBillCardPanel()
						.getBillModel()
						.setValueAt(UFBoolean.FALSE, e.getRow(), "biscrdeposit");
			}
		}
	}
}
